package com.draven.common.entity;

import com.baomidou.mybatisplus.annotation.TableField;
import com.baomidou.mybatisplus.annotation.TableName;
import lombok.Data;
import lombok.EqualsAndHashCode;

import javax.validation.constraints.NotBlank;
import javax.validation.constraints.Size;

/**
 * 笔记标签实体类
 * 
 * @author draven
 */
@Data
@EqualsAndHashCode(callSuper = true)
@TableName("note_tag")
public class NoteTag extends BaseEntity {

    private static final long serialVersionUID = 1L;

    /**
     * 标签名称
     */
    @NotBlank(message = "标签名称不能为空")
    @Size(max = 30, message = "标签名称长度不能超过30个字符")
    private String tagName;

    /**
     * 标签颜色（用于前端显示）
     */
    @Size(max = 7, message = "颜色值长度不能超过7个字符")
    private String color;

    /**
     * 标签描述
     */
    @Size(max = 100, message = "标签描述长度不能超过100个字符")
    private String description;

    /**
     * 使用次数
     */
    private Integer useCount;

    /**
     * 状态（0正常 1停用）
     */
    private Integer status;

    /**
     * 笔记数量（非数据库字段）
     */
    @TableField(exist = false)
    private Integer noteCount;

    /**
     * 使用次数（非数据库字段）
     */
    @TableField(exist = false)
    private Integer usageCount;
}